package com.briup.oagg.model.bean.basic;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;

import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * <p>
 * 模型训练配置表
 * </p>
 *
 * @author briup
 * @since 2023-03-27
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("oagg_model_train_config")
public class ModelTrainConfig implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 训练编号;
     */
    @TableId(type = IdType.ASSIGN_ID)
    private String trainId;

    /**
     * 模型编号;
     */
    private String modelId;

    /**
     * 模型类型
     */
    private String modelType;

    /**
     * 预处理算子编号;
     */
    private String preprocessId;

    private byte[] preprocessWeight;

    /**
     * 算子编号;
     */
    private String algorithmId;

    private byte[] algorithmWeight;

    /**
     * 训练指标;逗号分隔 例如: RC1,YC1,YH2
     */
    private String trainIndicators;

    /**
     * 如果是分类任务，不允许修改，(第一次训练选的任务是什么，后续就只能算什么);如果是分类任务，不允许修改，(第一次训练选的任务是什么，后续就只能算什么)             如果是聚类任务，可以每次都不相同。
     */
    private String target;

    /**
     * 训练状态: 新建训练，训练中，成功，失败
     */
    private Integer trainStatus;

    /**
     * 0 未发布，1 已发布
     */
    private Integer publishStatus;

    /**
     * 创建人编号;
     */
    private String createUser;

    /**
     * 创建时间;
     */
    private LocalDateTime createTime;

    @JsonIgnore                 //前端不显示是否删除字段
    @TableField(select = false) //不作为select查询字段
    private Integer deleted;
}
